package com.victor.utils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * txt读写工具类
 * 
 * @author Mr.Zhang
 *
 */
public class TxtUtils {
	public static void main(String[] args) {
//		readFile();

		List<String> videopaths = new ArrayList<String>();
		String path = "src/main/webapp/video_d/";
		videopaths.add(path + "1.mp4");
		videopaths.add(path + "2.mp4");
		videopaths.add(path + "3.mp4");
		videopaths.add(path + "4.mp4");

		writeFile(videopaths);

//		deleteFolderTxt("src/main/webapp/video_d/name.txt");
	}


	/**
	 * 读入txt文件
	 */
	public static void readFile() {
		String pathname = "mulu.txt"; // 绝对路径或相对路径都可以，写入文件时演示相对路径,读取以上路径的input.txt文件
		// 防止文件建立或读取失败，用catch捕捉错误并打印，也可以throw;
		// 不关闭文件会导致资源的泄露，读写文件都同理
		// Java7的try-with-resources可以优雅关闭文件，异常时自动关闭文件；详细解读https://stackoverflow.com/a/12665271
		try (FileReader reader = new FileReader(pathname); BufferedReader br = new BufferedReader(reader) // 建立一个对象，它把文件内容转成计算机能读懂的语言
		) {
			String line;
			// 网友推荐更加简洁的写法
			while ((line = br.readLine()) != null) {
				// 一次读入一行数据
				System.out.println(line);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}


	/**
	 * 写入txt文件
	 */
	public static void writeFile(List<String> videopaths) {

		try {
			File writeName = new File("src/main/webapp/video_r/mulu.txt");// 相对路径，如果没有则要建立一个新的output.txt文件

			writeName.createNewFile();// 创建新文件,有同名的文件的话直接覆盖
			try (FileWriter writer = new FileWriter(writeName); BufferedWriter out = new BufferedWriter(writer)) {
				for (String videopath : videopaths) {
					out.write("file '" + videopath + "'" + "\r\n");// \r\n即为换行
				}
				out.flush();// 把缓存区内容压入文件
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * java方法删除文件
	 * 
	 */
	public static boolean deleteFolderTxt(String sPath) {
		boolean flag = false;
		File file = new File(sPath);
		if (!file.exists()) {// 不存在放回false
			return flag;
		} else {
			if (file.isFile()) {// 如果file是文件 则调用删除方法
				return deleteFileTxt(sPath);// 删除文件
			} else {
				return flag;
			}
		}
	}

	// 删除文件方法实现
	public static boolean deleteFileTxt(String sPath) {

		boolean flag = false;
		File file = new File(sPath);
		if (file.isFile() && file.exists()) {
			file.delete();
			flag = true;
		}
		return flag;
	}


}
